package com.kdgz.kdgz.sevice;

import com.kdgz.kdgz.beans.Orders;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Desc 快递服务
 * @date 2021/3/18
 */
public interface OrdersService {
    /**
     * 添加一个快递
     * @param order 快递
     * @return 0：失败 1：成功
     */
    public Integer addOrder(Orders order);
    /**
     * 删除一个快递
     * @param id 快递id
     * @return 0：失败 1：成功
     */
    public Integer deleteOrder(Integer id);
    /**
     * 获得所有快递信息
     * @return java.util.List<com.kdgz.kdgz.beans.Orders>
     */
    public List<Orders> selectOrders();
    /**
     * 更新一个快递信息
     * @param order 快递
     * @return 0：失败 1：成功
     */
    public Integer updateOrder(Orders order);
    /**
     * 查询某个快递员所属快递
     * @param sid 快递员id
     * @return java.util.List<com.kdgz.kdgz.beans.Orders>
     */
    public List<Orders> getOrdersBySid(Integer sid);
    public List<Orders> getOrdersBySidAndStatus(Integer sid,Integer status);
    /**
     * 获得某个职工某年某月的工资
     * @param sid 职工id
     * @param year 年
     * @param month 月
     * @return java.util.List<com.kdgz.kdgz.beans.Orders>
     */
    public List<Orders> getOrdersBySidInMonth(Integer sid,Integer year,Integer month);
    /**
     * 获得某个状态的快递总量
     * @param status 状态
     * @return java.util.List<com.kdgz.kdgz.beans.Orders>
     */
    public List<Orders> getOrdersByStatus(Integer status);
    /**
     * 获得没有分配出去的快递信息
     * @return java.util.List<com.kdgz.kdgz.beans.Orders>
     */
    public List<Orders> getOrdersForSend();
    /**
     * 获得总收入
     * @return java.math.BigDecimal
     */
    public BigDecimal getTotalPrice();
    /**
     * 获得指定年份的总收入
     * @param year 指定年份
     * @return java.math.BigDecimal
     */
    public BigDecimal getTotalPrice(Integer year);
    /**
     * 获得指定年月的总收入
     * @param year 指定年份
     * @param month 指定月份
     * @return java.math.BigDecimal
     */
    public BigDecimal getTotalPrice(Integer year, Integer month);
    /**
     * 获得某年某月的快递数量
     * @param year 年
     * @param month 月
     * @return java.lang.Integer
     */
    public Integer totalOrdersByMonth(Integer year, Integer month);

    /**
     * 获得某年某月某个状态的快递数量
     * @param year 年
     * @param month 月
     * @param status 状态
     * @return java.lang.Integer
     */
    public Integer totalOrdersByStatus(Integer year, Integer month,Integer status);
    /**
     * 获得具体一天的快递总收入
     * @param year 年份
     * @param month 月份
     * @param day 具体一天
     * @return java.math.BigDecimal
     */
    public BigDecimal totalPriceByDay(Integer year, Integer month, Integer day);

}
